#ifndef SHADER_HPP
#define SHADER_HPP

#include <GL/glew.h>

#include <string>
#include <vector>

class Shader
{
public:
  
  Shader();
  virtual ~Shader();
  
  void load(GLenum type, const std::string & filename);
   
  void compile();
  
  void postDelete();
  
  GLuint getHandle() const {return m_handle; }
  GLuint getType() const {return m_type; }
  std::string getFilename() const {return m_filename; }
  std::string getLog() const {return m_log; }
  
private:
  GLuint       m_handle;
  GLenum       m_type;
  std::string  m_filename;
  GLchar *     m_log;
  
};

#endif // SHADER_HPP